City Science Lab San Francisco × MIT Media Lab City Science

Public Safety Pulse

Safety Perception Index — Computed from 626,911 311 reports, 85,804 SFPD incidents, 2,467 traffic crashes, 319 Reddit posts

"Safety isn't just a statistic; it's a feeling you hold when you're walking down the street."

— Daniel Lurie, Mayor of San Francisco, Inauguration Speech, January 2025
63%
Feel Safe (Day)
2023 City Survey
36%
Feel Safe (Night)
2023 City Survey
626,911
Disorder Reports
Feb 2025–Feb 2026
85,804
Crime Incidents
Feb 2025–Feb 2026
2,467
Traffic Crashes
12 months

The 2023 City Performance Survey — the most recent available — recorded the lowest safety satisfaction since the survey began in 1996. Only 63% of residents reported feeling safe walking during the day, down from 85% in 2019. At night, only 36% feel safe, down from 53%. Meanwhile, SFPD data shows reported crime has been declining. This is the perception gap.

The 2025 CityBeat poll from the SF Chamber of Commerce suggests perception may be starting to shift — 78% of weekly downtown visitors now report feeling safe during the day, and the share saying SF is "on the right track" doubled from 22% to 43%. But we can only see these shifts through expensive one-off polls. Public Safety Pulse would make this signal continuous and block-level.

CityBeat 2025 — SF Chamber of Commerce

Perception is shifting, but we can only see it in expensive one-off polls

78%
of weekly downtown visitors feel safe during the day
43%
say SF is on the right track (was 22% in 2024)
↓34pp
fewer voters say crime has gotten worse (since 2022)
↓25pp
fewer say homelessness/street behavior is worse

Source: SF Chamber of Commerce CityBeat 2025 Poll. All figures from published poll results.

Hourly Distribution

When Are Disorder & Crime Reports Filed?

Sources: SF City Performance Survey 2023 (Controller's Office), CityBeat 2025 Poll (SF Chamber of Commerce), DataSF vw6y-z8j6 wg3w-h783 ubvf-ztfx
Animated Heat Sensor

How Safety Perception Shifts Across the Day

This map combines all data sources — 311 disorder reports, SFPD incidents, and traffic crashes — weighted by their impact on perception. Encampments and violent crime weigh more heavily than graffiti or property crime. Press play to watch hotspots shift through six 4-hour windows across a typical day.

Time Window
1pm – 5pm
Key Insight
Watch how the heat signature concentrates differently at night — the Tenderloin and SoMa corridors intensify while other neighborhoods cool off. This time-of-day variation is invisible in annual surveys and monthly crime statistics. It's exactly what Phase 1 would capture at block-by-block resolution.
Method: deck.gl HeatmapLayer with Gaussian kernel smoothing. Each point is weighted: 311 reports × category salience × temporal decay. SFPD incidents × crime severity × decay. Traffic crashes × 2.0. Higher weight = stronger heat signal. Radius auto-scales with zoom.
Computed Metric

Safety Perception Index v2

The SPI estimates how safe each neighborhood feels by fusing 715,182 data points across four datasets. It is a proxy estimate — not a direct measurement of perception. Scale: 0 (least safe feeling) to 100 (safest). Phase 1 would calibrate these scores against real sentiment.

SPI by Neighborhood

Disorder–Crime Divergence

Positive = more disorder than crime (perception problem). Negative = more crime than disorder (hidden risk).

Temporal Analysis

Disorder by Time of Day and Neighborhood

How 311 report rates shift across six 4-hour windows. Darker cells = more reports per month. This is the variation that a biennial survey cannot see.

Category Breakdown

Neighborhood Deep Dive

What's Driving Disorder?

Top Disorder Categories in Lowest-SPI Neighborhoods

Monthly Trends

Crime Categories (SFPD)

Transparency

Data Sources & Methodology

Data Sources Integrated

DatasetRecordsPeriodSPI RoleWeight
311 Service Requests vw6y-z8j6626,911Feb 2025–Feb 2026Disorder density, salience, temporal30% + 15% + 15%
SFPD Incidents wg3w-h78385,804Feb 2025–Feb 2026Crime severity density20%
Traffic Crashes ubvf-ztfx2,46712 monthsPedestrian safety10%
Reddit r/sanfrancisco319VariousCommunity sentiment baseline10%
City Survey 20232023Validation reference
CityBeat 2025 Poll2025Calibration reference

SPI v2 Formula

SPI = 100 − scaled( 0.30×D + 0.20×C + 0.15×DC + 0.10×PS + 0.15×TR + 0.10×CS )

D = z-score( Σ(311 cases × e^(-days/180)) / area_km² )
C = z-score( Σ(SFPD incidents × severity × e^(-days/180)) / area_km² )
DC = z-score( mean salience weight of 311 categories )
PS = z-score( traffic crashes / area_km² )
TR = z-score( 0.6 × night_ratio + 0.4 × trend_ratio )
CS = keyword sentiment from Reddit (citywide baseline, neighborhood-specific where available)

Key Methodological Choices

ChoiceApproachRationale
NormalizationZ-score, capped at ±3σHandles different scales; robust to outliers vs naive min-max
Temporal decayExponential, half-life ~6 monthsRecent events affect current perception more than old ones
Crime weightingSeverity scale (1–5)Violent crime affects perception more than property crime
Disorder salienceCategory weights (0.2–1.0)Encampments affect perception more than graffiti (broken windows)
Spatial unitSF Planning neighborhoodsMatches City Survey for validation; ~40 zones

Known Limitations

Reporting bias: 311 reflects who reports, not what exists. Engaged neighborhoods over-report.
Survival bias: Areas people avoid generate fewer data points and appear safer than they feel.
No direct perception: Everything here is inferred from proxy data. Phase 1 collects the real signal.
Reddit signal: Only 319 posts, not geocoded — applied as crude baseline, not precise neighborhood signal.
Weight calibration: Component weights are from research literature, not empirically calibrated to SF perception data. Phase 1 would enable proper calibration via regression against direct sentiment responses.

Research Basis

Wilson & Kelling (1982) "Broken Windows" — visible disorder signals predict perceived unsafety.
Sampson & Raudenbush (1999) — systematic observation of disorder correlates with fear of crime.
Salesses, Schechtner & Hidalgo (2013) "Place Pulse" — crowdsourced urban perception mapping (MIT Media Lab).
Naik et al. (2014) "Streetscore" — computer vision for perceived safety from Google Street View (MIT).
These inform our salience weighting: encampments and visible waste are weighted higher than graffiti or noise.

Everything you just saw is inferred from proxy data.

311 captures what people report. Crime data captures what police file. Areas people avoid appear safe in the data. Reddit captures what the online community discusses. None of this is a direct measurement of how people feel. We need the actual signal.

What Phase 1 Unlocks

What We Have Now (Proxy)What Phase 1 Adds (Direct)
311 complaints — lagging, reporter biasDirect, in-the-moment perception
Crime incidents — only what gets reportedReal-time safety sentiment
Biennial survey — 2-year lag, neighborhood levelDaily signal, block level
SPI from proxy data — inferred, unvalidatedCalibrated index with ground truth
Reddit keywords — crude, not geocodedGeocoded NPS from digital touchpoints

The Question

"Right now, how does the surrounding area feel to you?" — Comfortable / Neutral / Uncomfortable. Delivered through existing digital touchpoints during normal daily activity. Anonymous. Aggregated by place and time.

Distribution Channels

Offices & Buildings
Employee check-in (Envoy), workplace comms, visitor sign-in
Stores & Restaurants
Point of sale — Square, Toast, Clover, Apple Pay, SNAP cards
Transit
BART / Muni, Uber / Lyft / Waymo, Google Maps, parking apps
Location Apps
AllTrails, Strava, Yelp, feedback QR kiosks

The Feedback Loop

Phase 1 validates signal quality. Phase 2 builds a correlation engine — mapping which observable conditions predict perception. Phase 2 also tests interventions (sights: cleaning, lighting, ambassadors; sounds: street musicians; smells: pleasant aromas; civic signals: responsive service). Measure impact in near-real-time. This creates a continuous improvement cycle: measure → correlate → intervene → re-measure.

$150–200K
Phase 1
6-month pilot
6 months
Duration
Define → Build → Capture → Evaluate
50K/mo
Target Responses
Ramp from 5K

Partner with us to validate whether direct sentiment can fill the gap.

City Science Lab San Francisco × MIT Media Lab City Science